# Presented By ZhaoEnxing
# time: 2021/10/27 10:36
"""
例8.1.1在饲料养鸡增肥的研究中,某研究所提出三种饲料配方:A、是以(鱼粉为主的饲料,4.是以(魄米粉为主的饲料,A,是以直蓿粉为主的饲料.
为比较三种饲料的效果,特选24只相似的雏鸡随机均分为三组,每组各喂一种饲料,60天后观察它们的质量.试验结果如表8.1.1所示:
                表8.1.1鸡饲料试验数据                          单位:g

饲料                         鸡的质量
A1     1073     1009    1060    1001    1002    1012    1009    1028
A2     1107     1092    990     1109    1090    1074    1122    1001
A3     1093     1029    1080    1021    1022    1032    1029    1048

本例中,我们要比较的是三种饲料对鸡的增肥作用是否相同.为此,把饲料称为因子,记为A,
三种不同的配方称为因子A的三个水平,记为A1,A2,A3,使用配方A下第j只鸡60天后的质量用y。
表示,i=1,2,3,j= 1,2,… ,8.我们的目的是比较三种饲料配方下鸡的平均质量是否相等,为此,
需要做一些基本假定,把所研究的问题归结为一个统计问题.然后用方差分析的方法进行分析.
若相等,可任选一种饲料,特别可选廉价饲料;若不等，应洗增肥效果好的饲料.
"""
"""
检查三家工厂的机器完成生产所需平均时间是否相同。三家工厂机器完成生产所需时间如下

α = 0.05

H0: 三家工厂的机器完成生产所需平均时间相同

H1: 三家工厂的机器完成生产所需平均时间不同

# %%

import pandas as pd
import statsmodels.api as sm
from statsmodels.formula.api import ols

# %%

productivity_df = pd.read_excel('5-1.xlsx')
productivity_df

# %%

# 将原始数据的宽表转化成便于数据分析的长表
productivity_df_long = productivity_df.melt(var_name='factory', value_name='time_spent')
productivity_df_long

# %%

# 用pandas中groupby按工厂进行分组，然后用describe方法对各组进行描述性统计
productivity_df_long.groupby('factory').describe()

# %%

productivity_lm = ols('time_spent~C(factory)', data=productivity_df_long).fit()
sm.stats.anova_lm(productivity_lm)

# %% md

结论

由于p值
0.00426 < 0.05 ，因此在5 % 显著性水平下，应拒绝原假设，即三个厂机器完成工作时间是有显著差异的
"""
import pandas as pd
import statsmodels.api as sm
from statsmodels.formula.api import ols

productivity_df = pd.read_excel('E:\Project\Python\Statistics\Third\chicken.xlsx')

productivity_df_long = productivity_df.melt(var_name='factory', value_name='time_spent')

productivity_df_long.groupby('factory').describe()


productivity_lm = ols('time_spent~C(factory)', data=productivity_df_long).fit()
sm.stats.anova_lm(productivity_lm)


data = sm.stats.anova_lm(productivity_lm)
p = data.iloc[0,4]
print(p)

alpha = 0.05
if p < alpha:
    print("{}<{}拒绝原假设，三种饲料是重要的影响因素。".format(p,alpha))
else:
    print("{}>{}无法拒绝原假设，即私聊的选择不是重要的影响因素。".format(p,alpha))